/*
 * DetalleGridVentasSimple.java
 *
 * Created on 26 de marzo de 2007, 05:44 PM
 */

package inc.jmc.cyberboard.ui.ventas;

import inc.jmc.cyberboard.common.DefaultLookAndFeel;
import inc.jmc.cyberboard.common.NumFormat;
import inc.jmc.cyberboard.entitybeans.Productos;
import inc.jmc.cyberboard.ui.ventas.common.VentasDetalleTableModel;
import java.awt.Dimension;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.DefaultCellEditor;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableColumn;
import org.apache.log4j.Logger;

/**
 *
 * @author  Juan Miguel Olguin Salguero
 */
public class DetalleGridVentasSimple extends javax.swing.JPanel {
    
    static Logger logger = Logger.getLogger(DetalleGridVentasSimple.class.getName());
    ArrayList dataProductos = new  ArrayList ();
    public static final Object[] header=new Object[]{"Item","Precio Unitario","Cantidad","Monto"};
    public DetalleGridVentasSimple() {
        initComponents();
        dtm=new VentasDetalleTableModel(new Object[][]{},header,false);
        updateTableUI();
    }
    
    VentasDetalleTableModel dtm;
    public void addItems(ArrayList arry)
    {
        
        for(int i=0;i<arry.size();++i)
        {
            /////
            //Tomamos cada uno de los productos de la tabla de catalogo de productos
            //y por cada producto tomado, vamos asignando en cada columna de la nueva tabla los
            //datos de ese producto
            
            ArrayList record=(ArrayList)arry.get(i);
            Vector recVector=new Vector();
         
            recVector.add(record.get(0));//P.NOMBRE_CORTO
            recVector.add(record.get(1));//D.PRECIO_UNITARIO
            recVector.add(record.get(2));//D.CANTIDAD
            recVector.add(record.get(3));//D.SUBTOTAL
            dtm.addRow(recVector);
            this.dataProductos.add(record);
        }
        this.updateTableUI();
    }
    public void removeAll()
    {
        
        productosTable.removeAll();
        dtm.getDataVector().removeAllElements();
        this.dataProductos.clear();
        this.updateTableUI();
    }
    public void updateTableUI()
    {
        productosTable=new JTable(dtm);
        productosTable.setDragEnabled(true);
        productosTable.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
        jScrollPane1.setViewportView(productosTable);
        productosTable.setFont(DefaultLookAndFeel.TableFont);
        productosTable.setBackground(DefaultLookAndFeel.TableBackground);
        productosTable.setRowHeight(DefaultLookAndFeel.TableRowHeight);
        if(productosTable.getTableHeader()!=null)
          productosTable.getTableHeader().setReorderingAllowed(false);
        ///en caso de que haya al menos un elemento en el grid, ese lo seleccionamos 
        if(dtm.getRowCount()>0)
            this.productosTable.getSelectionModel().setSelectionInterval(0,0);
        productosTable.setColumnSelectionAllowed(false);
        
        
        DefaultTableCellRenderer precioRenderer = new DefaultTableCellRenderer();
        precioRenderer.setHorizontalAlignment(JLabel.RIGHT);
        logger.info("Voy a ver si existe este numero DetalleGridVentas.HEADER_PRECIO_UNITARIO-->"+DetalleGridVentas.HEADER_PRECIO_UNITARIO);
        logger.info(""+DetalleGridVentas.HEADER_PRECIO_UNITARIO);
        TableColumn columnaAux=productosTable.getColumn(DetalleGridVentas.header[DetalleGridVentas.HEADER_PRECIO_UNITARIO]);
        columnaAux.setCellRenderer(precioRenderer);
        columnaAux=productosTable.getColumn(DetalleGridVentas.header[DetalleGridVentas.HEADER_MONTO]);
        columnaAux.setCellRenderer(precioRenderer);
        columnaAux=productosTable.getColumn(DetalleGridVentas.header[DetalleGridVentas.HEADER_CANTIDAD]);
        columnaAux.setCellRenderer(precioRenderer);
        columnaAux=productosTable.getColumnModel().getColumn(DetalleGridVentas.HEADER_CANTIDAD);
        productosTable.setIntercellSpacing(new Dimension(5, 2));
        
        
        
    }
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
    private void initComponents() {
        jScrollPane1 = new javax.swing.JScrollPane();
        productosTable = new javax.swing.JTable();

        setLayout(new java.awt.BorderLayout());

        productosTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane1.setViewportView(productosTable);

        add(jScrollPane1, java.awt.BorderLayout.CENTER);

    }// </editor-fold>//GEN-END:initComponents
    
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable productosTable;
    // End of variables declaration//GEN-END:variables
    
}
